package rmi;

import swing.Vista;

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.util.Iterator;

import ViewObjects.ClienteView;

import rmi.InterfazRemotaOF;

public class ProxyModeloConcreto extends ProxyModelo {

	private static final long serialVersionUID = 1L;
	private InterfazRemotaOF OF;
	
	public ProxyModeloConcreto() throws RemoteException {
		super();
		getConexion();
	}

	@Override
	public void update() throws RemoteException {

		for(Iterator<Vista> i = vistas.iterator();i.hasNext();)
		{
			i.next().actualizar();
		}

	}

	protected void getConexion()
	{
    	try {
    		OF = (InterfazRemotaOF)Naming.lookup ("//localhost/CPR");
    		OF.addObserverRemotoOF(this);    		
    		System.out.println("Conectado al Servidor //localhost/CPR");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	


	
	public void alta_cliente(int idCliente, String razonSocial, String direccion, String telefono) {
		try {
			
			OF.alta_cliente(idCliente, razonSocial, direccion, telefono);
		} catch (RemoteException e) {
			e.printStackTrace();
		}
		
	}

	public void baja_cliente(int idCliente) {
		try {
			OF.baja_cliente(idCliente);
		} catch (RemoteException e) {
			e.printStackTrace();
		}
	}

	public void modificar_cliente(int idCliente, String razonSocial, String direccion, String telefono) {
		try {
			OF.modificar_cliente(idCliente, razonSocial, direccion, telefono);
		} catch (RemoteException e) {
			e.printStackTrace();
		}
	}
	
	public ClienteView consultar_cliente(int idCliente) {
		try {
			return OF.consultar_cliente(idCliente);
		} catch (RemoteException e) {
			e.printStackTrace();
		}
		return null;
	}

	
	
	

}
